import Vue from 'vue';
import Vuex from 'vuex'
import nav from '../../static/data/nav';
// import navProduct from '../../static/data/navProduct';
import {
  zhilan
} from '../../static/data/product'
import { baseURL } from "./../config/myConfig"

Vue.use(Vuex);

const store = new Vuex.Store({
  state: {
    nav, // 导航的渲染数据，数据库并未设计导航，因此导航数据必然是静态的
    zhilan, // 知览茶（龙井茶）的静态数据
    // navProduc
    products: [], // 所有的商品数据
    typeFilter: { // 商品类型，用于导航栏点击的商品列表切换
      type: null, // 主类型
      type_es: null, // 次类型
    },
    showProductList: [], // 根据 type 渲染的商品，getters 方法过滤的数据不会双向绑定，必须再用个变量进行渲染
  }, // state
  actions: {
    // 更新需要被渲染显示的数据
    updateShowProductList() {
      this.state.showProductList = this.state.products.filter(product => {
        // 商品的主类型包含当前主类型才显示
        if (this.state.typeFilter.type !== null) {
          for (let i in product.type) {
            let t = product.type[i];
            t = t.replaceAll("\"", "").replaceAll("[", "").replaceAll("]", "").replaceAll(" ", "");
            if (t.indexOf(this.state.typeFilter.type) > -1) {
              return true;
            }
          }
        }
        if (this.state.typeFilter.type_es !== null) {

        }
      })
    }, // updateShowProductList
    // 获取所有商品数据
    getProduct() {
      Vue.axios
        .get("/product/findAll", {})
        .then((res) => {
          this.state.products = res.data;
          this.state.products.forEach(item => { // 给所有图片链接加上 url 前缀
            item.img_url = baseURL + "/" + item.img_url;
            for(let i in item.imgBigUrls) {
              item.imgBigUrls[i] = baseURL + "/" + item.imgBigUrls[i];
            }
            for(let j in item.imgSmallUrls) {
              item.imgSmallUrls[j] = baseURL + "/" + item.imgSmallUrls[j];
            }
          });
        });
    } // getProduct
  }, // actions
  getters: {
    products: (state) => {
      return state.products.filter(product => {
        // 商品的主类型包含当前主类型才显示
        if (state.typeFilter.type !== null) {
          product.type.forEach(t => {
            // 人工录入的数据库数据不标准， replace 一下错误的数据
            t = t.replaceAll("\"", "").replaceAll("[", "").replaceAll("]", "").replaceAll(" ", "");
            if (t.indexOf(state.typeFilter.type) > -1) {
              return true;
            }
          });
        }
        if (state.typeFilter.type_es !== null) {

        }
      })
    },
  } // getters
})

export default store
